package com.elitel.frame.business.service;

import com.elitel.frame.main.entity.CfgDb;
import com.elitel.frame.main.entity.CfgExtend;
import com.elitel.frame.main.entity.vo.PageResponseVo;

import java.util.Map;
/**
 * 
 * <pre>@ProjectName：frame-business-service    
 * @ClassName：SingleTableServerService    
 * @Description: TODO(单表服务service接口)    
 * @author：FanWenquan  
 * @date：2017年9月18日 下午2:04:39       
 * @version </pre>
 */
public interface SingleTableServerService {
	
	/**
	 * <pre>singleTBCount(单表服务查询总条数)   
	 * @author：FanWenquan    
	 * @date：2017年9月18日 下午2:04:18   
	 * @param prop
	 * @param count_sql
	 * @return</pre>
	 */
	Long singleTBCount(CfgDb prop, String count_sql);
	
	/**
	 * <pre>querySingleTBList(单表服务查询+分页)   
	 * @author：FanWenquan    
	 * @date：2017年9月18日 下午2:03:38   
	 * @param prop
	 * @param cfgExtend
	 * @param pageNO
	 * @param pageSize
	 * @param conQuery
	 * @return</pre>
	 */
	PageResponseVo<Map<String, Object>> querySingleTBListPagination(CfgDb prop, CfgExtend cfgExtend,
																	String pageNO, String pageSize,
																	Map<String, Object> passConditionMap,String refCache);

	Boolean insertSingleTable(CfgDb prop, CfgExtend cfgExtend, String singleTBArrayJson);

	Boolean deleteBatchSingleTable(CfgDb prop, CfgExtend cfgExtend, String singleIDs);

	Boolean updateSingleTable(CfgDb prop, CfgExtend cfgExtend, String singleTBArrayJson);


	/**
	 * show 单表服务分页查询数据库
	 * create by guoyanfei on 2018/12/20
	 * @param prop 数据源
	 * @param cfgExtend 单表服务配置信息
	 * @param pageNO 当前页
	 * @param pageSize 页大小
	 * @param conQuery 查询条件
	 * @return 查询结果
	 */
	PageResponseVo queryDataByPage(CfgDb prop, CfgExtend cfgExtend, String pageNO, String pageSize, Map<String, Object> passConditionMap);
}
